﻿
Namespace Aricie.DNN.Services.Url.FriendlyUrl.SimpleAPI
    ''' <summary>
    ''' Interface for the Factory Fluent API
    ''' </summary>
    ''' <remarks></remarks>
    Public Interface ISimpleGroupFluentFactory

        Function SetRewriteType(ByVal RewriteType As RewriteType) As ISimpleGroupFluentFactory
        Function SetRegexPattern(ByVal regex As String) As ISimpleGroupFluentFactory
        Function SetConsume(ByVal Consume As Boolean) As ISimpleGroupFluentFactory
        Function SetFilter(ByVal ApplyBehaviour As Boolean) As ISimpleGroupFluentFactory

        Function AddParameter(ByVal name As String) As ISimpleGroupFluentFactory
        Function AddNonExclusiveParameter(ByVal name As String) As ISimpleGroupFluentFactory
        Function AddOptionalParameter(ByVal name As String) As ISimpleGroupFluentFactory

        Function SetRewritingDelegate(ByVal Rewriter As SimpleGroupParamsRewrite.SimpleRewriteDelegate) As ISimpleGroupFluentFactory

        Function AddParameter(ByVal name As String, ByVal Flags As ParamNature) As ISimpleGroupFluentFactory

        Function Create() As SimpleGroupParamsRewrite

    End Interface
End Namespace